Python基础:模块 您所在的位置:网站首页 python 模块导入 模块的所有文件都会导入吗 Python基础:模块

Python基础:模块

2023-07-12 22:41| 来源: 网络整理| 查看: 265

文章目录 模块**import和from语句**

模块

模块对应Python源代码文件,在Python模块中可以自定义变量、函数和类。多个功能相似的模块(源文件)可以组成一个包(文件夹)。用户通过导入其他模块,可以使用该模块中定义的变量、函数和类,从而重用其功能。

模块API

客户端使用模块提高的函数时,无须了解其实现细节,模块和客户端之间遵循的契约称为API。

通过内置函数help()可以查看Python模块的API:

import 模块名 help(模块名)

模块创建

#在名为module1.py的文件中输入下面的def语句,并导入该文件,你将创建一个模块对象,该对象拥有一个属性名称printer,而printer引用一个函数对象。 def printer(x): #Module attribute print(x)

模块使用

import和from语句

import会整体读取一个模块,之后必须借助点号".",才能获取其中的名称。

import语句直接列出一个或多个需要加载的模块的名称,以逗号分隔。

import module1 module1.printer("Hello world!") # output:Hello world!

from将会从模块中取出(或者说复制)特定的名称。

from会把特定名称从一个文件复制到另一个作用域,所以它可以让我们直接在脚本中使用复制后的名称,而不需要通过模块。

from module1 import printer printer("Hello world!") # output:Hello world!

from 语句:是特殊的from形式,当我们用*代替特定的名称时,会取得模块顶层被赋值的所有名称的副本。(py3要求只能用在一个模块文件的顶部,不能用于一个函数中)*

from module1 import * printer("Hello world!") # output:Hello world!

注意:import和from语句虽然都采用相同的导入操作。from*形式只是多了一个步骤,即把模块中所有名称复制到了进行导入的作用域中,本质上就是把一个模块的命名空间纳入另一个模块中。*只有 可以在这个上下文中工作,你不能使用模式匹配来挑选出名称的子集。

if __name__ == "__main__": 这行代码是在Python中常见的结构。它用于判断当前模块是作为主程序运行,还是作为模块导入到其他程序中。

def printer(x): #Module attribute print(x) def main(): print("Hello!") if __name__ == '__main__': main() #output:Hello!

当一个Python模块被导入到另一个模块或脚本中时,Python解释器会将特殊变量__name__设置为模块的名称。然而,如果一个模块作为主程序运行,解释器会将__name__变量设置为字符串 "__main__"。

因此,if __name__ == "__main__": 条件用于检查当前模块是否是主程序。如果是主程序,将执行条件后面的代码块。如果它被导入为模块,代码块将被跳过。

import和from是赋值语句

import和from是可执行语句,而不是编译时的声明。而且它们可以嵌套在if 测试里,只有对应的import和from语句执行后,才可以使用。

在模块中改变可变对象

和def一样,import和from都是隐式的赋值语句。

import将整个模块对象赋值给一个单独的名称

from将一个或多个名称赋值给另一个模块中的同名对象

"""smally.py""" x = 1 y = [2, 3] from small import x, y x = 10#x不是共享的可变对象 y[0] = 10#y是共享可变对象 import small print(small.x)#output:1 print(small.y)#output:[20, 3]


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有